home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Development Tools & Languages / • Other Platforms / PCCTS 1.31 / testcpp / 3 / test.g < prev   
Encoding:
Text File  |  1995-03-10  |  1.2 KB  |  49 lines  |  [TEXT/MPS ]

  1. /* Ariel Tamches (tamches@cs.wisc.edu): This tests linking in a simple non-DLG scanner */
  2.  
  3. /* All TokenType's must have some end-of-file token;  You must define
  4.  * it with setEofToken() to your end of input token.
  5.  *
  6.  * We assume that #tokdefs is  employed for this example; i.e., ANTLR does
  7.  * NOT assign token numbers.
  8.  *
  9.  * ANTLR option -gx must be used to turn off generation of DLG crud (when you
  10.  * want to define your own token stream).
  11.  */
  12.  
  13. #tokdefs "mytokens.h"
  14.  
  15. /* user must define ANTLRToken outside of #header */
  16. <<
  17. typedef ANTLRCommonToken ANTLRToken;    /* use a predefined Token class */
  18. >>
  19.  
  20. /* At this point, ANTLRToken and ANTLRTokenStream are defined, user must now
  21.  * derive a class from ANTLRTokenStream (which embodies the user's scanner)
  22.  */
  23. <<#include "MyLexer.h">>
  24.  
  25. <<
  26. int main()
  27. {
  28.     /* create one of my scanners */
  29.     MyLexer scan;
  30.     ANTLRTokenBuffer pipe(&scan);
  31.     /* create a parser of type Expr hooked to my scanner */
  32.     Expr parser(&pipe);
  33.     parser.init();
  34.     parser.setEofToken(Eof);
  35.  
  36.     parser.e();                /* start parsing at rule 'e' of that parser */
  37.     return 0;
  38. }
  39. >>
  40.  
  41. class Expr {
  42.  
  43. e    :    IDENTIFIER NUMBER
  44.         <<fprintf(stderr, "text is %s,%s\n", $1->getText(), $2->getText());>>
  45.         Eof
  46.     ;
  47.  
  48. }
  49.